package ooday05;
// StaticFinal 演示
public class StaticFinalDemo {
    public static void main(String[] args) {
        System.out.println(Hoo.PI); // 常常由类名点来访问
        // Hoo.PI = 3.1415926; 编译错误 常量不能被改变

        // 1、加载 Ioo.class 到方法区中
        // 2、静态变量 num 一并存储到方法区中
        // 3、到方法区中虎丘 num 的值 并输出
        System.out.println(Ioo.num);

        // 编译器在编译时 会将常量直接替换成具体的数
        // 相当于 sout ( 5 ); —— 效率高
        System.out.println(Ioo.COUNT);
    }
}
// 假设有10个人 都用 PI 的值
// 写常量的话 —— Hoo.PI
// 不用常量的话 —— 3.14159
class Hoo{
    public static final double PI = 3.14159;
    // public static final int NUM; 编译错误 常量必须声明同时初始化
}

class Ioo{
    public static int num = 5; // 静态变量
    public static final int COUNT = 5; // 常量
}